package com.yi.wood.dao;

import com.yi.wood.entity.AppUser;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

/**
 * @author MoYi
 * create date 2019/4/14 10:31
 */
public interface AppUserDao extends JpaRepository<AppUser,Long> {

    /**
     * 组装sql查询用户列表
     * @param goodsSpecification 过滤条件
     * @param pageable 分页参数
     * @return 用户列表
     */
    Page<AppUser> findAll(Specification<AppUser> goodsSpecification, Pageable pageable);

    /**
     * 通过ID获取APP用户信息
     * @param id 用户ID
     * @return APP用户信息
     */
    AppUser findAppUserById(Long id);

    /**
     * 通过用户ID查询下级所有用户列表（上限100个）
     * @param parentId 用户的上级ID
     * @return 某用户所有下级用户列表
     */
    List<AppUser> findAppUserByParentId(Long parentId);

    /**
     * 通过用户名查询用户
     * @param userName 用户名（唯一）
     * @return APP用户信息
     */
    AppUser findAppUserByUserName(String userName);
}
